本文同步發表於: Sponge Records
sql 語法基於1970年由埃德加·科德提出的論文,主要應用場景為管理關聯式資料庫內的資料,包含查詢、新增、刪除、修改
而雖然 sql 語法已經於1987年被ISO標準化,但各家資料庫所定義的語法與特殊字依然有所差異,目前主流的關聯式資料庫如
sql server、mysql、oracle、postgresql中,只有 postgresql 努力遵從標準,因此使用 postgesql 可以說是使用最標準的 sql 語法
以下將簡單介紹資料庫的結構與 sql 的操作
基本上不論是 sql server、mysql、oracle、postgresql...關聯式資料庫的架構大致如下
執行個體
這裡指的資料庫系統,當你安裝好一個資料庫系統時,裡面只有預設的系統資料庫或是沒有資料庫的
單純就是一個資料庫系統而不具有任何使用者資料
資料庫
當要開始使用資料庫時,會需要建立一個專屬的資料庫,很像是個人的專屬抽屜,在 postgresql 可以用以下語法實現
CREATE DATABASE SpongeProject
這樣,我們就有了一個名為 SpongeProject 的資料庫,可以在裡面存放各種跟 SpongeProject 有關聯的資料
而同樣,有創造就有破壞,我們可以用以下語法來刪除這個資料庫
DROP DATABASE SpongeProject
這語法請慎用,在沒有備份的狀況下是會造成悲劇的...
--NOT NULL 代表不能接受空值,NULL 代表可以接受空值
CREATE TABLE MemberInfo
(
MemberID INT NOT NULL, --成員的編號
MemberName VARCHAR, --成員的姓名
MemberSex INT --成員的性別,這裡用整數格式來記錄 ,設計為 0 = 女 、 1 = 男
);
於是我們就完成了基本資料表了,就像問卷設計一樣,資料表會依照目的與需求的不同而有不同的長相,並不存在唯一正確的設計
在之後會介紹的正規化與本次要設計的 API 用的資料表時會再分析優缺點跟如何在這次的案例中設計,要記住的點就是,沒有絕對正確的設計,只有最符合需求的設計
而當然,我們可以用以下語法來刪除這個資料庫
DROP TABLE MemberInfo
一樣,這語法請慎用,在沒有備份的狀況下是會造成悲劇的...
INSERT INTO MemberInfo
SELECT 1, 'SPONGE', 1
這樣我們就寫入了一個名為 SPONGE 的人,她的編號是 1 ,性別是 1 (男)
SELECT * FROM MemberInfo --秀出在 MemberInfo 內的所有資料
也可以透過以下語法來找出特定條件的資料
SELECT * FROM MemberInfo WHERE MemberID = 1 --秀出在 MemberInfo 內的,會員編號為 1 的資料
DELETE FROM MemberInfo --刪除在 MemberInfo 內的所有資料
也可以透過以下語法來刪除特定條件的資料
DELETE FROM MemberInfo WHERE MemberID = 1 --刪除在 MemberInfo 內的,會員編號為 1 的資料
UPDATE MemberInfo
SET MemberName = 'Sponge' --將在 MemberInfo 內的所有資料的姓名欄位更新成 Sponge
也可以透過以下語法來找出特定條件的資料
UPDATE MemberInfo
SET MemberName = 'Sponge'
WHERE MemberID = 1 --將在 MemberInfo 內的會員編號為 1 的資料的姓名欄位更新成 Sponge
到這裡我們簡單介紹了 資料庫 與 sql 的架構了,當然兩者所具有的技術絕對不止這些,但這裡僅先介紹一些較為基礎的
在下一篇會有更深入的應用
下回將會開始重頭戲,進入 API 規劃的篇章了,下一篇將會從 web api 的介紹開始出發,規劃我們 API 的結構